package com.sdust.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sdust.pojos.dto.*;
import com.sdust.pojos.entity.Article;
import com.sdust.result.Result;

public interface ArticleService extends IService<Article> {

    /**
     * 根据id查询文章
     * @param id
     * @return
     */
    Result selectById(Integer id);

    /**
     * 新增文章
     * @param dto
     * @return
     */
    Result addNewArticle(ArticleDto dto);

    /**
     * 查询文章列表
     * @param dto
     * @return
     */
    Result loadList(ArticleLoadDto dto);

    /**
     * 查询全部文章
     * @return
     */
    Result loadAllArticle();

    /**
     * 查询文章评论
     * @param articleId
     * @return
     */
    Result loadComment(Integer articleId);

    /**
     * 新增评论
     * @param dto
     * @return
     */
    Result addComment(CommentDto dto);

    /**
     * 文章点赞
     * @param dto
     * @return
     */
    Result articleLike(ArticleUserLikeDto dto);

    /**
     * 文章取消点赞
     * @param dto
     * @return
     */
    Result articleUndoLike(ArticleUserLikeDto dto);

    /**
     * 获取文章点赞数量
     * @param articleId
     * @return
     */
    Result getArticleLikeNum(Integer articleId);

    /**
     * 文章搜索
     * @param dto
     * @return
     */
    Result searchArticle(ArticleSearchDto dto);

    /**
     * 文章搜索自动补全
     * @param content
     * @return
     */
    Result completionArticleSearch(String content);
}
